package com.xjh.basestudy.javabase.streamandlambda.lambdaexercise1;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.stream.Collectors;

public class EatableDemo {
    public static void main(String[] args) {
        //创建接口实现类EatableImpl的对象
        Eatable e = new EatableImpl();
        //因为直接在测试类中创建的接口操作方法，所以直接调用方法即可
        useEatable(e);
        //匿名内部类
        useEatable(new Eatable() {
            @Override
            public void eat() {
                System.out.println("匿名内部类实现：一天一苹果，医生远离我");
            }
        });
        //lambda表达式
        useEatable(() -> {
            System.out.println("lambda表达式实现：一天一苹果，医生远离我");
        });


        BigDecimal a = new BigDecimal("1");
        BigDecimal b = new BigDecimal("3");
        BigDecimal c = new BigDecimal("2");
        ArrayList<Object> objects = new ArrayList<>();
        objects.add(a);
        objects.add(b);
        objects.add(c);
        objects.stream().sorted().collect(Collectors.toList());
        System.out.println(objects);

    }

    //接口操作方法，这里没定义成类，而是直接在主方法之外，新建一个方法
    private static void useEatable(Eatable e) {
        e.eat();
    }


}
